package cn.zyjblogs.server.user.service;

import cn.zyjblogs.server.user.po.UserRolePo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Collection;
import java.util.List;

/**
 * @author zhuyijun
 */
public interface UserRoleService extends IService<UserRolePo> {
    /**
     * 保存或用户角色关联
     *
     * @param userId    用户id
     * @param roleIds   角色id集合
     * @param needClear 是否清除该用户旧关联
     * @return boolean
     * @author zhuyijun
     * @date 2022/9/23 下午11:10
     */
    boolean saveOrUpdate(String userId, Collection<String> roleIds, boolean needClear);

    /**
     * 通过用户id删除用户角色关联
     *
     * @param userId 用户id
     * @return int
     * @author zhuyijun
     * @date 2022/9/23 下午10:56
     */
    int deleteByUserId(String userId);

    /**
     * 通过用户id集合删除用户角色关联
     *
     * @param userIds 用户id集合
     * @return int
     * @author zhuyijun
     * @date 2022/9/23 下午10:56
     */
    int deleteByUserIds(Collection<String> userIds);

    /**
     * 通过用户id查询角色id
     *
     * @param userId 用户id
     * @return int
     * @author zhuyijun
     * @date 2022/9/23 下午11:00
     */
    List<String> findRoleListByUserId(String userId);
}
